package com.yuw.streamdemo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.junit.jupiter.api.Test;

public class streamTestDriver {
	/**
	 * 使用输入流读取一个文件内容到cpu，然后使用输出流将内容写到指定位置的外部文件中
	 * （使用输入输出流进行了文件的复制）
	 */
	@Test
	public void test01() {
		//创建一个输入流对象
		try {
			InputStream is=new FileInputStream("E:\\temp\\streamfiles\\in01.txt");
			//输出流对象
			//构造方法的第二个参数决定写入文件是接着写还是从头覆盖写
			OutputStream os=new FileOutputStream("E:\\temp\\streamfiles\\in011_out.txt",true);
			//用于读取输入流的字节数组
			byte[] b=new byte[1024];
			//将输入流的内容读取到用于存储的字节数组中
			int len=is.read(b);
			while(len!=-1) {
				//使用输出流输出内容
				System.out.println(new String (b,"gbk"));//使用String的构造方法编译
				os.write(b,0,len);
				//继续往下读
				len=is.read(b);
			}
			
			//关闭资源
			if(is!=null) {
				is.close();	
			}
			if(os!=null) {
				os.flush();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		
		
	}

	}
}
